const fs = require('fs')
const path = require('path')
const http  = require('http')
const { json } = require('stream/consumers')
// let buf_3 = Buffer.from('abc')
// console.log(buf_3)

// let bufferArray = new ArrayBuffer(8)
// bufferArray[0] = 'asdasd'
// console.log(bufferArray)
// fs.writeFile('test.txt', 'hello world', (err) => {
//   if (err) {
//     console.log(err)
//   }
// })

//创建文件夹
// try {
//   fs.mkdirSync('test') //同步创建文件夹
// } catch (error) {
//   console.log('创建失败!')
// }

//创建文件
// for(let i = 1; i < 10; i++){
//  fs.writeFileSync(`${__dirname}/test/${i}-test.txt`, 'hello world')
// }

//删除文件
// for(let i = 1; i < 10; i++){
//   fs.rmSync(`${__dirname}/test/00${i}-test.txt.txt`)
// }


//读取指定目录下的文件
// fs.readdirSync(`${__dirname}/test`).forEach(item => {
//   const data = item.split('-')
//   const [num,name] = data
//   重命名
//   fs.renameSync(`${__dirname}/test/${item}`, `${__dirname}/test/0${num}-${name}`)
// })

// Array.prototype.Myflat = function(depth = 1) {
//   let a = []
//   //根据数组的长度便利每一项
//   for (let i = 0; i < this.length; i++) {
//     //判断每一项是否为数组 且 递归深度要大于0
//     if (Array.isArray(this[i]) && depth > 0) {
//       a = a.concat(this[i].Myflat(depth - 1))
//     } else {
//       a.push(this[i])
//     }
//   }
//   return a
// }


// const arr = [1, 2, [3, 4, [5, 6]]]
// console.log(arr.flat)

// const a = [1,2,3,4,5,6]
// console.log(new Object(a))

const serve = http.createServer((req, res) => {
  const { url, method } = req;
  res.setHeader('Content-Type', 'text/html;charset=utf-8')
  // const p = new URL(url)
  console.log(url)
  // const param = new URLSearchParams(new URL(url).search)
  // param.forEach((value, key) => {
  //   console.log(key, value)
  // })
  if(method === 'GET'){
    switch(url){
      case '/':
        res.end(fs.readFileSync('./index.html'))
        break;
      case '/login':
        res.end('login')
        break;
      case '':

        break;
      default:
        res.end(fs.readFileSync('./404.html'))
    }
  }

  if(method === 'POST'){
    let data = '';
    req.on('data', chunk => {
      data += chunk
    })
    req.on('end', () => {
      console.log(data)
      res.end('post')
    })
  }
  // res.end('hello world')
})


serve.listen(3000,e=>{
  console.log('\x1B[32mCompiled successfully in 1ms\x1B[0m')
  console.log('\x1B[32mhttp://localhost:3000\x1B[0m')
})